// 封装fb请求方法
import Vue from 'vue';
import store from '../store';
import { Notification } from 'element-ui';
import { version } from './config';
export default {
  get(url, params) {
    // 添加访问令牌
    var obj = Object.assign(
      {
        access_token: store.state.access_token
      },
      params
    );
    return new Promise((resolve, reject) => {
      Vue.FB &&
        Vue.FB.api(url, 'GET', obj, function(res) {
          if (!res.error) {
            resolve(res);
          } else {
            if (res.error.error_subcode === 2446079) {
              Notification.error({
                title: '错误',
                message:
                  'Facebook访问调用次数、总 CPU 时间或总时间达到使用量的 100%, 过一小时再尝试',
                duration: 0
              });
              return false;
            } else if (
              res.error.error_subcode === 463 ||
              res.error.error_subcode === 467 ||
              res.error.code === 190
            ) {
              Notification.error({
                title: '错误',
                message: 'Facebook访问令牌失效, 请点击重新登录',
                duration: 0
              });
              // 失效了清除token
              store.dispatch('clearData');
              localStorage.removeItem(`${version}_vuex`);
            } else {
              Notification.error({
                title: '异常错误',
                message: `${res.error.message} (请联系开发人员)`,
                duration: 0
              });
            }
          }
        });
    });
  },
  // 保留.
  post(url, params) {
    return new Promise((resolve, reject) => {
      // 广告账号
      Vue.FB &&
        Vue.FB.api(url, 'POST', params, function(res) {
          if (!res.error) {
            resolve(res);
          }
        });
    });
  }
};
